/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.ufba.lasid.v1.jitclouds.mda.datatypes.virtualization;

import br.ufba.lasid.v1.jitclouds.mda.datatypes.IConfiguration;
import br.ufba.lasid.v1.jitclouds.mda.datatypes.IGuest;
import java.io.Serializable;

/**
 *
 * @author aliriosa
 */
public interface IVirtualMachine extends IGuest, Serializable {

    public IConfiguration getConfiguration();

    public void setConfiguration(IConfiguration config);

    public IHypervisor getHypervisor();

    public void setHypervisor(IHypervisor hypervisor);

    public void execute(String command);

    public void shutdown();

    public void startup();

    public void reboot();

    public void pause();

    public void destroy();

    public void setStatus(VMStatus status);

    public VMStatus getStatus();

    public enum VMStatus {

        Running, Paused, Halted, Faulty
    }
}
